#ifndef __ARRAY_OPTIMIZATION_SUPERVISOR_H__
#define	__ARRAY_OPTIMIZATION_SUPERVISOR_H__

#include "OptimizationSupervisor.h"
#include <vector>

namespace learn {

struct ArrayOptimizationSupervisor : OptimizationSupervisor {
	ArrayOptimizationSupervisor(int _inputCount, int _outputCount);
	virtual ~ArrayOptimizationSupervisor();
	
	void addSample(float *input, float *target);
	
	// OptimizationSupervisor interface
	virtual int getSampleCount();
	virtual int getInputLength();
	virtual void getInput(int index, float* outInput);
	virtual int getTargetLength();
	virtual void getTarget(int index, float* outTarget);
	
private:
	int inputLength;
	int targetLength;
	std::vector<float> inputs;
	std::vector<float> outputs;
};

}

#endif	// __ARRAY_OPTIMIZATION_SUPERVISOR_H__

